package tech.aistar.day08;

import tech.aistar.day08.equal.Book;
import tech.aistar.day08.equal.BookInfo;

/**
 * 本类用来演示:
 *
 * @author: success
 * @date: 2021/3/17 3:32 下午
 */
public class CloneDemo {
    public static void main(String[] args) {
        Book b5 = new Book(5,"1005","西游记",600.0d);

        BookInfo info = new BookInfo(1,"aaa");
        b5.setBookInfo(info);

        try {
            //java.lang.CloneNotSupportedException
            Book copy = (Book) b5.clone();

            //1 - 浅拷贝
            //修改了初始对象的基本类型和String类型[比较特殊] - 不会对副本对象产生影响的
            b5.setIsbn("1006");
            b5.setId(6);

            //修改对象类型 - 会对副本产生了影响
            b5.getBookInfo().setRemark("ccc");

            System.out.println(copy);
            System.out.println(copy.getBookInfo());
        } catch (CloneNotSupportedException e) {
            //System.err.println("发生错误了!");
            e.printStackTrace();//打印异常信息
        }
    }
}
